Page({
  data: {
    questions: [
      {
        id: 1,
        title: '您近一周内是否感到疲劳乏力？',
        options: ['是', '否']
      },
      {
        id: 2,
        title: '您近一周内是否有失眠或睡眠质量差的情况？',
        options: ['是', '否']
      },
      {
        id: 3,
        title: '您近一周内是否感到情绪低落或焦虑？',
        options: ['是', '否']
      },
      {
        id: 4,
        title: '您近一周内是否有食欲减退或暴饮暴食的情况？',
        options: ['是', '否']
      },
      {
        id: 5,
        title: '您近一周内是否感到注意力不集中或记忆力下降？',
        options: ['是', '否']
      }
    ],
    answers: {},
    currentQuestionIndex: 0,
    progress: 0,
    isLoading: true, // 骨架屏加载状态
    showHelpTip: false, // 帮助提示显示状态
    helpTipText: '' // 帮助提示文本
  },

  // 页面加载
  onLoad: function() {
    // 模拟数据加载延迟，显示骨架屏
    setTimeout(() => {
      this.setData({
        isLoading: false
      });
      // 计算初始进度
      this.calculateProgress();
    }, 1000);
  },

  // 页面显示
  onShow: function() {
    // 可以在这里添加页面显示时的逻辑
  },

  // 计算进度
  calculateProgress: function() {
    // 计算当前进度百分比
    const progress = ((this.data.currentQuestionIndex + 1) / this.data.questions.length) * 100;
    this.setData({
      progress: progress
    });
  },

  // 选择答案
  selectAnswer: function(e) {
    const questionId = this.data.questions[this.data.currentQuestionIndex].id;
    const answer = e.currentTarget.dataset.answer;
    const newAnswers = { ...this.data.answers };
    newAnswers[questionId] = answer;
    
    // 隐藏帮助提示
    if (this.data.showHelpTip) {
      this.setData({
        showHelpTip: false,
        helpTipText: ''
      });
    }
    
    this.setData({
      answers: newAnswers
    });
  },

  // 下一题
  nextQuestion: function() {
    // 检查当前问题是否已回答
    const currentQuestionId = this.data.questions[this.data.currentQuestionIndex].id;
    if (!this.data.answers[currentQuestionId]) {
      // 显示未选择提示
      this.showHelpTip('请选择一个答案再继续');
      return;
    }
    
    if (this.data.currentQuestionIndex < this.data.questions.length - 1) {
      // 添加问题切换动画
      this.switchQuestionAnimation(1);
    }
  },

  // 上一题
  prevQuestion: function() {
    if (this.data.currentQuestionIndex > 0) {
      // 添加问题切换动画
      this.switchQuestionAnimation(-1);
    }
  },

  // 问题切换动画
  switchQuestionAnimation: function(direction) {
    const animation = wx.createAnimation({
      duration: 300,
      timingFunction: 'ease'
    });
    
    // 根据方向设置动画（-1: 上一题, 1: 下一题）
    const translateX = direction === 1 ? -50 : 50;
    animation.opacity(0).translateX(translateX).step();
    
    this.setData({
      animationData: animation.export()
    });
    
    setTimeout(() => {
      // 更新当前问题索引
      this.setData({
        currentQuestionIndex: this.data.currentQuestionIndex + direction
      });
      
      // 重置动画，从反方向进入
      const animation = wx.createAnimation({
        duration: 300,
        timingFunction: 'ease'
      });
      
      const enterTranslateX = direction === 1 ? 50 : -50;
      animation.opacity(1).translateX(enterTranslateX).step();
      this.setData({
        animationData: animation.export()
      });
      
      // 计算进度
      this.calculateProgress();
    }, 300);
  },

  // 提交评估
  submitQuestionnaire: function() {
    // 检查是否所有问题都已回答
    const allAnswered = this.data.questions.every(question => {
      return this.data.answers[question.id] !== undefined;
    });
    
    if (!allAnswered) {
      wx.showToast({
        title: '请回答所有问题',
        icon: 'none',
        duration: 2000
      });
      return;
    }
    
    // 显示加载提示
    wx.showLoading({
      title: '提交中...',
      mask: true
    });
    
    // 模拟提交过程
    setTimeout(() => {
      wx.hideLoading();
      
      // 显示提交成功提示
      wx.showModal({
        title: '提交成功',
        content: '问卷已经上传后台，请及时查看报告',
        showCancel: false,
        success: function(res) {
          if (res.confirm) {
            wx.switchTab({
              url: '/pages/index/index'
            });
          }
        }
      });
    }, 1500);
  },

  // 显示帮助提示
  showHelpTip: function(text) {
    this.setData({
      showHelpTip: true,
      helpTipText: text
    });
    
    // 3秒后自动隐藏
    setTimeout(() => {
      if (this.data.showHelpTip) {
        this.setData({
          showHelpTip: false,
          helpTipText: ''
        });
      }
    }, 3000);
  },

  // 跳过帮助提示
  skipHelpTip: function() {
    this.setData({
      showHelpTip: false,
      helpTipText: ''
    });
  }
})